#  高阶函数
"""
def sum(data):
    a = 0
    for i in data:
        a += i
    return a
def mysum(*args):
    #位置参数封装成一个元组
    a = []
    for i in args:
        if isinstance(i,int):
            a.append(i)
    return sum(data=a)

d = mysum(10,23,45,21,"b",43,"s")
print(d)

"""
"""
students_scores = [55,53,77,65,98,96,100]
def is_passing(score):
    return score >= 60
#标准函数 过滤
passing_scores = list(filter(is_passing, students_scores))
print(f"及格的学生有: {len(passing_scores)}")

"""

#匿名函数 一句话函数 lambda
"""
lambda  参数：if 符合的结果 ，if x >5 else if 不符合的结果
func = lambda x:True if x % 2 == 0 else False
print(func(4))
"""
'''
list1 = [("小a",99),("小v",70),("小d",50)]
#排序
list1.sort(key=lambda x:x[-1])
print(list1)
list1.sort(key=lambda x:x[-1],reverse=True)
print(list1)
'''

#闭包环境
'''
构成闭包环境的三个要素
1、外部函数会内嵌函数
2、内部函数会使用外部函数的一些变量数据
3、外部函数会将内部函数对象返回
'''
def douyin():
    number = 0
    def guanzhu(name):
        nonlocal number
        print(f"感谢{name}大哥关注")
        number += 1
        print(f"当前关注人数：{number}")
    return guanzhu  #注意这里不要加括号

func =douyin()
func("小米")
func("小花")
func("小明")